//
// ���ļ����� JavaTM Architecture for XML Binding (JAXB) ����ʵ�� v2.2.11 ��ɵ�
// ����� <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
// �����±���Դģʽʱ, �Դ��ļ��������޸Ķ�����ʧ��
// ���ʱ��: 2015.05.26 ʱ�� 03:50:35 PM CST 
//


package edu.stanford.bmir.protege.web.server.transform.service.org.iso25964;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;


/**
 * When a concept has an array of narrower concepts, the relationship to this array is not given here. To avoid redundancy, the relationship is given in one direction only, from ThesaurusArray using the child element hasSuperOrdinateConcept.
 * 
 * <p>ThesaurusConceptStruct complex type�� Java �ࡣ
 * 
 * <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
 * 
 * <pre>
 * &lt;complexType name="ThesaurusConceptStruct"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="identifier" type="{http://iso25964.org/}Identifier"/&gt;
 *         &lt;element ref="{http://iso25964.org/}created" minOccurs="0"/&gt;
 *         &lt;element ref="{http://iso25964.org/}modified" minOccurs="0"/&gt;
 *         &lt;element name="status" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="notation" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="topConcept" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/&gt;
 *         &lt;element name="PreferredTerm" type="{http://iso25964.org/}PreferredTerm" maxOccurs="unbounded"/&gt;
 *         &lt;element name="SimpleNonPreferredTerm" type="{http://iso25964.org/}SimpleNonPreferredTerm" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="ScopeNote" type="{http://iso25964.org/}ScopeNote" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="HistoryNote" type="{http://iso25964.org/}HistoryNote" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="CustomNote" type="{http://iso25964.org/}CustomNote" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="CustomConceptAttribute" type="{http://iso25964.org/}CustomConceptAttribute" maxOccurs="unbounded" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ThesaurusConceptStruct", propOrder = {
    "identifier",
    "created",
    "modified",
    "status",
    "notation",
    "topConcept",
    "preferredTerm",
    "simpleNonPreferredTerm",
    "scopeNote",
    "historyNote",
    "customNote",
    "customConceptAttribute"
})
public class ThesaurusConceptStruct {

    @XmlElement(required = true)
    protected String identifier;
    @XmlSchemaType(name = "anySimpleType")
    protected String created;
    @XmlSchemaType(name = "anySimpleType")
    protected String modified;
    protected String status;
    protected List<String> notation;
    protected Boolean topConcept;
    @XmlElement(name = "PreferredTerm", required = true)
    protected List<PreferredTerm> preferredTerm;
    @XmlElement(name = "SimpleNonPreferredTerm")
    protected List<SimpleNonPreferredTerm> simpleNonPreferredTerm;
    @XmlElement(name = "ScopeNote")
    protected List<ScopeNote> scopeNote;
    @XmlElement(name = "HistoryNote")
    protected List<HistoryNote> historyNote;
    @XmlElement(name = "CustomNote")
    protected List<CustomNote> customNote;
    @XmlElement(name = "CustomConceptAttribute")
    protected List<CustomConceptAttribute> customConceptAttribute;

    /**
     * ��ȡidentifier���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getIdentifier() {
        return identifier;
    }

    /**
     * ����identifier���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setIdentifier(String value) {
        this.identifier = value;
    }

    /**
     * ��ȡcreated���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getCreated() {
        return created;
    }

    /**
     * ����created���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setCreated(String value) {
        this.created = value;
    }

    /**
     * ��ȡmodified���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getModified() {
        return modified;
    }

    /**
     * ����modified���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setModified(String value) {
        this.modified = value;
    }

    /**
     * ��ȡstatus���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getStatus() {
        return status;
    }

    /**
     * ����status���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setStatus(String value) {
        this.status = value;
    }

    /**
     * Gets the value of the notation property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the notation property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getNotation().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link String }
     * 
     * 
     */
    public List<String> getNotation() {
        if (notation == null) {
            notation = new ArrayList<String>();
        }
        return this.notation;
    }

    /**
     * ��ȡtopConcept���Ե�ֵ��
     * 
     * @return
     *     possible object is
     *     {@link Boolean }
     *     
     */
    public Boolean isTopConcept() {
        return topConcept;
    }

    /**
     * ����topConcept���Ե�ֵ��
     * 
     * @param value
     *     allowed object is
     *     {@link Boolean }
     *     
     */
    public void setTopConcept(Boolean value) {
        this.topConcept = value;
    }

    /**
     * Gets the value of the preferredTerm property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the preferredTerm property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPreferredTerm().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link PreferredTerm }
     * 
     * 
     */
    public List<PreferredTerm> getPreferredTerm() {
        if (preferredTerm == null) {
            preferredTerm = new ArrayList<PreferredTerm>();
        }
        return this.preferredTerm;
    }

    /**
     * Gets the value of the simpleNonPreferredTerm property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the simpleNonPreferredTerm property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getSimpleNonPreferredTerm().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link SimpleNonPreferredTerm }
     * 
     * 
     */
    public List<SimpleNonPreferredTerm> getSimpleNonPreferredTerm() {
        if (simpleNonPreferredTerm == null) {
            simpleNonPreferredTerm = new ArrayList<SimpleNonPreferredTerm>();
        }
        return this.simpleNonPreferredTerm;
    }

    /**
     * Gets the value of the scopeNote property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the scopeNote property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getScopeNote().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ScopeNote }
     * 
     * 
     */
    public List<ScopeNote> getScopeNote() {
        if (scopeNote == null) {
            scopeNote = new ArrayList<ScopeNote>();
        }
        return this.scopeNote;
    }

    /**
     * Gets the value of the historyNote property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the historyNote property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getHistoryNote().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link HistoryNote }
     * 
     * 
     */
    public List<HistoryNote> getHistoryNote() {
        if (historyNote == null) {
            historyNote = new ArrayList<HistoryNote>();
        }
        return this.historyNote;
    }

    /**
     * Gets the value of the customNote property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the customNote property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getCustomNote().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CustomNote }
     * 
     * 
     */
    public List<CustomNote> getCustomNote() {
        if (customNote == null) {
            customNote = new ArrayList<CustomNote>();
        }
        return this.customNote;
    }

    /**
     * Gets the value of the customConceptAttribute property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the customConceptAttribute property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getCustomConceptAttribute().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link CustomConceptAttribute }
     * 
     * 
     */
    public List<CustomConceptAttribute> getCustomConceptAttribute() {
        if (customConceptAttribute == null) {
            customConceptAttribute = new ArrayList<CustomConceptAttribute>();
        }
        return this.customConceptAttribute;
    }

}
